#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long n;
    cin>>n;
    int m,i,j,pos,sum,len,mlen=0,t=0;
    //分解质因数
    m=sqrt(n);
    int s[m];
    for(int i=2;i<=m+1;i++)
    {
        if(n%i==0)s[t++]=i;
    }if(t==0)cout<<"1"<<endl<<n<<endl;
    else if(t==1)cout<<"1"<<endl<<s[0]<<endl;
    else{
        for(i=0; i<t-1; i++)
        {
            sum=s[i];
            len=1;
            for(j=i; j<t-1; j++)
            {
                if(s[j+1]-s[j]==1&&n%(sum*s[j+1])==0)//判断是否连续  连续的话判断相乘后是否还是因子
                {//因为题目要求的是连续因子，既要连续，连续相乘后还得是因子
                    sum=sum*s[j+1];
                    len++;
                }
                else//不符合直接跳出，判断以下一个因子开始的序列是否符合
                    break;
            }
            if(len>mlen)//如果长度大于最大长度则记录开始的因子序列
            {//如果等于则不变，因为题目要求输出的是在序列最长的情况下输出最小连续因子
                mlen=len;//更新最长序列
                pos=i;
            }
        }
        cout<<mlen<<endl;//按要求输出
        cout<<s[pos];
        for(i=pos+1; i<pos+mlen; i++)
            cout<<'*'<<s[i];
        cout<<endl;
    }
    return 0;
}
